package com.smile.config;



import lombok.Data;
import java.util.List;
import java.util.Map;

/**
 * 路由模型
 */
@Data
public class RouteDefinitionObject {
    /**
     * 路由的Id
     */
    private String id;

    /**
     * 路由断言集合配置
     */
    private List<PredicateDefinition> predicates;

    /**
     * 路由过滤器集合配置
     */
    private List<FilterDefinition> filters;

    /**
     * 路由规则转发的目标uri
     */
    private String uri;

    /**
     * 路由执行的顺序
     */
    private Integer order = 0;

    @Data
    public static class PredicateDefinition {
        /**
         * 断言对应的Name
         */
        private String name;

        /**
         * 配置的断言规则
         */
        private Map<String, String> args;
    }

    @Data
    public static class FilterDefinition {
        /**
         * 过滤器对应的Name
         */
        private String name;

        /**
         * 配置的过滤器规则
         */
        private Map<String, String> args;
    }
}
